Lo que estoy tratando de hacer es pasar algunos datos de un componente a otro a través del enrutador (estoy usando Vue-Router-4 con Vue 3.0) . Pero los datos que obtengo son solo "[objeto Objeto]" en lugar del valor real. Aquí esta lo que hice. Dentro del componente que envía los datos tengo esta función
goToQuestions() { this.$router.push({ name: "QuestionsPage", params: { data: this.questions }, }); },dentro de mi index.js tengo esto
{ path: "/questions-page", name: "QuestionsPage", props: true, component: () => import ('@/views/QuestionsPage.vue') },Y luego dentro del componente del receptor tengo este fragmento
props: ["data"], mounted() { console.log("data coming from the router", this.data); },Supongo que estas this.questions son una matriz o un objeto.
con enrutador se recomienda no enviar objetos y matrices. En su lugar, envíe una id . Y en la página del receptor, use esa id para obtener los datos.
Incluso si quieres pasar un objeto, puedes probar esto:
al agregar rutas, use el modo de función de accesorios para que tenga un usuario de propiedad predeterminado y agregará route.params como accesorios.
{ path: '/questions', name: 'questions', component: QuestionsComponent, props: (route) => ({ user: userData, ...route.params }) }use esto para empujar en su ruta
self.$router.push({ name: 'questions', params: { data: this.questions } })